package com.registration.service;

import com.registration.bean.ScheduleBean;

import java.util.List;

public interface ScheduleService {
    /**
     * 根据医生ID获取未来可预约的排班（含号源）
     * @param doctorId 医生ID
     * @return 排班列表（ScheduleBean）
     */
    List<ScheduleBean> getFutureSchedulesByDoctorId(Integer doctorId);

    /**
     * 检查并锁定号源（用于创建订单时防并发）
     * @param scheduleId 排班ID
     * @return 排班信息（含剩余号源）
     */
    ScheduleBean checkAndLockQuota(Integer scheduleId);

    /**
     * 减少号源（订单创建后）
     * @param scheduleId 排班ID
     * @return 影响行数（1=成功，0=失败）
     */
    int decreaseQuota(Integer scheduleId);

    /**
     * 增加号源（订单取消后）
     * @param scheduleId 排班ID
     */
    void increaseQuota(Integer scheduleId);
}
